using Cysharp.Threading.Tasks;
using IQIGame.Onigao.Framework;
using IQIGame.Onigao.Game;
using System;
using UnityEngine;

namespace IQIGame.Onigao.GamePlay
{
    /// <summary>
    /// 主城常驻资源管理器，注意常驻资源生命周期必须贯穿整个主城，而不是某一个区域
    /// </summary>
    public class MainCityPermanentResource : IDisposable
    {
        public ResLoader resloader { private set; get; }
        /// <summary>
        /// 头顶指示器
        /// </summary>
        public GameObject prefabHeadIndicator { private set; get; }

        public MainCityPermanentResource()
        {
            resloader = ResLoader.Create();
        }

        public async UniTask LoadResource()
        {
            var taskHeadIndicator = resloader.LoadABAssetAwait<GameObject>(PathConstant.GetEffectPrefabPath("common_effect/Fx_HeadGem"));
            //目前只有一个指示器，但如果未来还有多个资源，请先获取所有task，再一个一个await，而不要await了第一个，再开启第二个Task，这样效率低
            prefabHeadIndicator = await taskHeadIndicator;
        }

        public void Dispose()
        {
            if (resloader != null)
            {
                resloader.Put2Pool();
                resloader = null;
            }
        }
    }
}
